package com.sx.pipeline.repos.http.service

import com.sx.pipeline.app.config.BaseEntity
import com.sx.pipeline.repos.http.res.*
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.GET
import retrofit2.http.Query

/**
 * @Author: YY
 * @Date: 2022/5/19
 * @Description: 工作台模块 - 接口
 */
interface IWorkBenchService {

    /**
     * 轮播图
     */
    @GET("/api/app/banner/list")
    fun getBannerList(): Observable<BaseEntity<List<BannerVO>>>

    /**
     * 公告以及消息数量
     */
    @GET("/api/system/user/information")
    fun getInformation(): Observable<BaseEntity<InformationVO>>

    /**
     * 常用应用
     */
    @GET("/api/system/user/getModuleList")
    fun getModuleList(): Observable<BaseEntity<List<CommonApplyListVO>>>

    /**
     * 任务统计
     */
    @GET("/api/system/user/taskStatistics")
    fun getTaskStatistics(@Query("taskType") taskType: Int,
                          @Query("timeType") timeType: Int
    ): Observable<BaseEntity<HashMap<Int, TaskStatisticsVO>>>

    /**
     * 未完成任务列表
     */
    @GET("/api/system/user/undoneTask")
    fun getUndoneTask(
        @Query("taskType") taskType: Int,
        @Query("timeType") timeType: Int,
        @Query("type") type: Int,
        @Query("isPage") isPage: Boolean,
        @Query("page") page: Int,
        @Query("limit") limit: Int,
    ): Observable<BaseEntity<Ipage<ReleaseTaskVo>>>

    /**
     * 最新供应或最新需求
     */
}